perm filename SYNSUB.FAI[PIX,HPM]2 blob sn#297836 filedate 1977-08-05 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00014 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE SYNSUB
C00003 00003	HELPER:	OUTSTR	[ASCIZ \
C00007 00004	TYPEQ:	OUTSTR	[ASCIZ \
C00008 00005	NOCHAN:
C00009 00006	FILNM:
C00011 00007	FONTNO:	POP	P,RETAD
C00013 00008	FEWCHN:
C00014 00009	CRLF:	OUTSTR	[ASCIZ \
C00015 00010	FIRST:	SKIPN	FIRF
C00016 00011	FIRST1:	SKIPN	FIRF1
C00017 00012	FIRST2:	SKIPN	FIRF2
C00018 00013	FIRST3:	SKIPN	FIRF3
C00019 00014		END
C00020 ENDMK
C⊗;
	TITLE SYNSUB
	ENTRY	HELPER,TYPEQ,NOCHAN,FEWCHN,FIRST1,FIRST2,FIRST3,FIRST,CRLF
	ENTRY	FILNM,FONTNO

P←17 ↔ A←1 ↔ B←2 C←3 ↔ D←4

RETAD:	0
RETAD1:	0
ESS:	0
SING:	[ASCIZ \is\]
PLUR:	[ASCIZ \s are\]

NUMOUT:	POP	P,RETAD1
	POP	P,A
	MOVE	C,[POINT 7,D]
	SETZ	D
	MOVE	0,SING
	CAIE	A,1
	MOVE	0,PLUR
	MOVEM	0,ESS
DLOO:	IDIVI	A,=10
	ADDI	B,60
	IDPB	B,C
	JUMPG	A,DLOO
	OUTSTR	D
	JRST	@RETAD1

HELPER:	OUTSTR	[ASCIZ \
XGPSYN displays files on the video synthesizer, imitating the XGP.  It can
fill the screen with 1/2, 1 or 2 pages at time.

Tell it which file you want to look at, and any spooler style switches,
such as /FONT=BASL30 (.XGP files already contain all necessary switches).
The page number questions can be answered with the page you want to view,
any additional spooler switches, or one of the following commands:

	H	Half density. Next display will be 1/2 page/screen.
	F	Full density. 1 page/screen.
	D	Double density. 2 pages/screen.

	V	view. Redraw the last display.
	K	kill. Erase the synthesizer.
	Q	quit. Exit program and load line editor with XS command.

	O	output the last display as a hand/eye picture file.
	B	Bitwise density. Next display will be suitable for XGPing.
	T	Transposed bitwise density. Sideways B.
	E	Enormous density. Next display can be sent expanded to XGP.
	X	XGP output the last B,T or E display.
	L	list file in B dens. Slower and more tolerant than XSPOOL.

Notes: Page 1 in .XGP files contains the font descriptions, and is not
viewable.  The video synthesizer is a video rate D/A driven by data disc
channels 30 through 37. H density requires 3 of these channels, F needs 4
and D wants 5. These are rarely available during heavy system load. About
7 CPU seconds are required to compose a single page.
\]
	POPJ	P,
TYPEQ:	OUTSTR	[ASCIZ \
Type ?<cr> for help

\]
	POPJ	P,
NOCHAN:
	OUTSTR	[ASCIZ \No synthesizer channels are available.
Perhaps you should give up.

\]
	POPJ	P,
FILNM:
	OUTSTR	[ASCIZ \FILE NAME\]
	POPJ	P,
FONTNO:	POP	P,RETAD
	OUTSTR	[ASCIZ \FONT#\]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\=\]
	JRST	@RETAD
FEWCHN:
	POP	P,RETAD
	OUTSTR	[ASCIZ \
Only \]
	PUSHJ	P,NUMOUT
	OUTSTR	[ASCIZ	\ synthesizer channel\]
	OUTSTR	ESS
        OUTSTR	[ASCIZ \ available, display will be ugly.

\]
	JRST	@RETAD
CRLF:	OUTSTR	[ASCIZ \
\]
	POPJ	P,
FIRST:	SKIPN	FIRF
	OUTSTR	[ASCIZ \
(or <cr> for next window,
 H,F,D to change density,
 V to redraw, K to erase, Q to quit,
 B,T,E,X,L or spooler switches)\]
	AOS	FIRF
	POPJ	P,

FIRF:	0
FIRST1:	SKIPN	FIRF1
	OUTSTR	[ASCIZ \
(eg. 3.5 for p3 bottom [or 2-1.5 if no formfeeds])\]
	AOS	FIRF1
	POPJ	P,

FIRF1:	0
FIRST2:	SKIPN	FIRF2
	OUTSTR	[ASCIZ \ <esc>47S to view\]
	AOS	FIRF2
	POPJ	P,

FIRF2:	0
FIRST3:	SKIPN	FIRF3
	OUTSTR	[ASCIZ \(and any switches)\]
	AOS	FIRF3
	POPJ	P,

FIRF3:	0
	END